The present invention relates generally to the field of resource management and more specifically to resource scheduling among multiple consumers.
Computing applications often require multiple dimensions of resources. Some examples of dimensions are memory, CPU cores, software licenses, etc. Workload demands change with time and a resource scheduler allocates resources to various consumers (i.e., users), according to multi-consumer policies and current demands to facilitate the completion of tasks (i.e., computing processes). A resource scheduler is a program that allocates resources for computing processes to better ensure that the appropriate resources are allocated properly. For example, certain workloads may require memory-intensive resources while others may require more CPU-intensive resources. The resource scheduler aims to limit (and even eliminate) inefficiencies such as resource starvation of a consumer and enforce policies to allow important consumers to get a minimum resource guarantee when needed. The tasks within a workload may be completed on computers, machines, or host sites.